home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / machack / Hacks97 / WarriorsProgress.sit / Warrior’s Progress / source code / Source / Libraries / Files / Directory.h < prev    next >
Text File  |  1997-06-28  |  3KB  |  73 lines

  1. // Directory.h
  2.  
  3. #ifndef Directory_h
  4. #define Directory_h
  5.  
  6. #ifndef VolumeID_h
  7. #include "VolumeID.h"
  8. #endif
  9. #ifndef DirectoryID_h
  10. #include "DirectoryID.h"
  11. #endif
  12. #ifndef ConstPString_h
  13. #include "ConstPString.h"
  14. #endif
  15.  
  16. class FileLocation;
  17.  
  18. class Directory
  19.   {
  20.     private:
  21.         VolumeID volume;
  22.         DirectoryID id;
  23.         
  24.         static Directory Find( VolumeID volume, OSType folder, bool creating );
  25.         
  26.         static VolumeID System()        { return VolumeID::Make( kOnSystemDisk ); }
  27.         
  28.     public:
  29.         Directory( VolumeID theVolume, DirectoryID theID = DirectoryID::Root() )
  30.           : volume( theVolume ),
  31.              id( theID )
  32.           {}
  33.         
  34.         VolumeID Volume() const                { return volume; }
  35.         DirectoryID ID() const                { return id; }
  36.         
  37.         bool IsRoot() const                    { return id == DirectoryID::Root(); }
  38.         
  39.         void Up();
  40.         void Down( ConstPString );
  41.  
  42.         Directory Parent() const;
  43.         
  44.         bool operator==( Directory d ) const    { return volume == d.volume && id == d.id; }
  45.         bool operator!=( Directory d ) const    { return volume != d.volume || id != d.id; }
  46.         
  47.         static Directory AppleMenuItems    ( VolumeID v = System() )        { return Find( v, kAppleMenuFolderType, false ); }
  48.         static Directory ControlPanels    ( VolumeID v = System() )        { return Find( v, kControlPanelFolderType, false ); }
  49.         static Directory Desktop            ( VolumeID v = System() )        { return Find( v, kDesktopFolderType, false ); }
  50.         static Directory Extensions        ( VolumeID v = System() )        { return Find( v, kExtensionFolderType, false ); }
  51.         static Directory Fonts                ( VolumeID v = System() )        { return Find( v, kFontsFolderType, false ); }
  52.         static Directory Preferences        ( VolumeID v = System() )        { return Find( v, kPreferencesFolderType, false ); }
  53.         static Directory PrintSpool        ( VolumeID v = System() )        { return Find( v, kPrintMonitorDocsFolderType, false ); }
  54.         static Directory StartupItems        ( VolumeID v = System() )        { return Find( v, kStartupFolderType, false ); }
  55.         static Directory SystemFolder        ( VolumeID v = System() )        { return Find( v, kSystemFolderType, false ); }
  56.         static Directory TemporaryItems    ( VolumeID v = System() )        { return Find( v, kTemporaryFolderType, false ); }
  57.         static Directory SharedTrash        ( VolumeID v = System() )        { return Find( v, kWhereToEmptyTrashFolderType, false ); }
  58.         
  59.         static Directory MakeAppleMenuItems    ( VolumeID v = System() )        { return Find( v, kAppleMenuFolderType, true ); }
  60.         static Directory MakeControlPanels    ( VolumeID v = System() )        { return Find( v, kControlPanelFolderType, true ); }
  61.         static Directory MakeDesktop            ( VolumeID v = System() )        { return Find( v, kDesktopFolderType, true ); }
  62.         static Directory MakeExtensions        ( VolumeID v = System() )        { return Find( v, kExtensionFolderType, true ); }
  63.         static Directory MakeFonts                ( VolumeID v = System() )        { return Find( v, kFontsFolderType, true ); }
  64.         static Directory MakePreferences        ( VolumeID v = System() )        { return Find( v, kPreferencesFolderType, true ); }
  65.         static Directory MakePrintSpool        ( VolumeID v = System() )        { return Find( v, kPrintMonitorDocsFolderType, true ); }
  66.         static Directory MakeStartupItems    ( VolumeID v = System() )        { return Find( v, kStartupFolderType, true ); }
  67.         static Directory MakeSystemFolder    ( VolumeID v = System() )        { return Find( v, kSystemFolderType, true ); }
  68.         static Directory MakeTemporaryItems    ( VolumeID v = System() )        { return Find( v, kTemporaryFolderType, true ); }
  69.         static Directory MakeSharedTrash        ( VolumeID v = System() )        { return Find( v, kWhereToEmptyTrashFolderType, true ); }
  70.   };
  71.  
  72. #endif
  73.